/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package com.agenda.model;

import com.agenda.model.entity.AmTbUsuaSist;
import com.agenda.model.persistence.DAOFactory;
import com.agenda.model.repository.UsuarioRepository;
import java.util.List;
import javax.annotation.PostConstruct;
import javax.ejb.Stateless;
import javax.jws.WebMethod;
import javax.jws.WebParam;
import javax.jws.WebService;
import javax.jws.soap.SOAPBinding;
import javax.persistence.EntityManager;
import javax.persistence.PersistenceContext;

/**
 *
 * @author Ronildo
 */


@Stateless
@WebService(serviceName = "UsuarioBOImpl")
@SOAPBinding(style = SOAPBinding.Style.DOCUMENT)
public class UsuarioBOImpl implements UsuarioBO{
    
    @PersistenceContext
    private EntityManager em;
    private UsuarioRepository usuarioRepository;
    
    @PostConstruct
    public void initialize(){
        usuarioRepository = DAOFactory.getUsuarioRepository(em);
    }
    
    @WebMethod
    public void insertUsuario(@WebParam(name = "usuario")AmTbUsuaSist usuario){
        usuarioRepository.persist(usuario);
    }
    
    @WebMethod
    public void deleteUsuario(@WebParam(name = "usuario")AmTbUsuaSist usuario){
        usuarioRepository.remove(usuario, new Long(usuario.getCdUsua()));
    }
    
    @WebMethod
    public void updateUsuario(@WebParam(name = "usuario")AmTbUsuaSist usuario){
        usuarioRepository.update(usuario);
    }
    
    @WebMethod
    public AmTbUsuaSist findUsuarioById(Long id){
        return usuarioRepository.findById(id);
    }
    
    @WebMethod
    public List<AmTbUsuaSist> listUsuario(@WebParam(name = "usuario")AmTbUsuaSist usuario){
        return usuarioRepository.list(usuario);
    }
    
    @WebMethod
    public List<AmTbUsuaSist> listAllUsuario(@WebParam(name = "usuario")AmTbUsuaSist usuario){
        return usuarioRepository.listAll();
    }
}
